#include "bits.h"




/*Calcule le nouveau bit produit par un LFSR dont le polynôme de rétroaction est P (de degré <= 32),
 * et dont le registre contient actuellement a
 */
int retroaction(uint a, uint P);




uint registre(uint a, int d, int L);
/* a est une suite de 32 bits. Cette fonction renvoie, à l'envers, L bits de a, à partir du n°d.
 * Elle renvoie donc le contenu du registre d'un LFSR de longueur L <= 31,
 * qui a dans sa case de droite le bit n°d de a et dans sa case de gauche le bit n°(d+L-1)
 * 
 * ex :
 * 
 * a = 00010011100110000000000000000000
 * d = 3
 * L = 7
 *   ________________
 *  |      |   |     |
 *   -->|0|1|1|1|0|0|1|-->
 *       ^           ^
 *       |           |
 *       |           bit n°3 (d) de a
 *       bit n°9 (d+L-1 = 3+7-1) de a
 * 
 * La fonction renvoie alors : 01110010000000000000000000000000
 * 
 */




uint* LFSR(int L, uint P, uint a, int N);
/* Calcule les N premiers bits générés par un LFSR de longueur L et de polynôme de rétroaction P,
 * qui contient initialement les L premiers bits de a.
 */ 
